home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MOS / CONSOLE.D < prev    next >
Encoding:
Modula Definition  |  1989-09-21  |  2.2 KB  |  68 lines

  1. DEFINITION MODULE Console;
  2.  
  3. (*
  4.  * Dieses Modul stellt Funktionen zur Ausgabe auf den Bildschirm bzw. Eingabe
  5.  * von der Tastatur zur Verfügung.
  6.  *
  7.  * Entgegen den Funktionen des Moduls 'Terminal', die das BIOS für die
  8.  * Ein-/Ausgabe nutzen, werden hier die GEMDOS-Routinen verwendet.
  9.  *
  10.  * Die GEMDOS-Routinen sind etwas langsamer und sie erlauben das
  11.  * Abbrechen des laufenden Programms durch Eingabe von <Control-C>.
  12.  * Dafür erlaubt das GEMDOS die Umlenkung der Ein-/Eusgabe auf Dateien
  13.  * von außerhalb (vom aufrufenden Programm aus).
  14.  *
  15.  * So ist dieses Modul 'Console' vor Allem dann zu verwenden, wenn
  16.  * das endgültige Programm als gelinkte Version unter Command-Shells
  17.  * verwendet werden soll, die diese Datei-Umleitung im Allgemeinen
  18.  * ermöglichen.
  19.  *
  20.  * Sind die Funktionen in diesem Modul nicht ausreichend, können
  21.  * zusätzlich die Funktionen direkt aus dem Modul GEMDOS verwendet werden.
  22.  * Dann kann auch das Modul 'StringEditor' zur komfortableren Texteingabe
  23.  * herangezogen werden.
  24.  *
  25.  * Sollen Zahlen ein- oder ausgegeben werden, sind dazu die hiesigen Proze-
  26.  * duren 'ReadString' und 'WriteString' sowie die String-Umwandlungsfunktio-
  27.  * nen des Moduls 'StrConv' zu benutzen.
  28.  *)
  29.  
  30. PROCEDURE Write (ch: CHAR);
  31.   (* Ausgabe eines Zeichens *)
  32.  
  33. PROCEDURE WriteString (REF str: ARRAY OF CHAR);
  34.   (* Ausgabe eines Strings *)
  35.  
  36. PROCEDURE WriteLn;
  37.   (* Ausgabe eines CR / LF. (Sprung in nächste Zeile) *)
  38.  
  39. PROCEDURE Read (VAR ch: CHAR);
  40.   (* Eingabe eines Zeichen mit Echo *)
  41.  
  42. PROCEDURE ReadLine (VAR str: ARRAY OF CHAR);
  43.   (*
  44.    * Eingabe einer Zeile.
  45.    * Dazu wird die GEMDOS-Funktion Nr. 10, "readline", verwendet.
  46.    * > Das eingegebene Return- oder LF-Zeichen wird nicht mit ausgegeben,
  47.    *   sodaß der Cursor nach dem Aufruf hinter der Eingabe stehen bleibt.
  48.    *)
  49.  
  50. PROCEDURE BusyRead (VAR c: CHAR);
  51.   (*
  52.    * Wenn Taste im Puffer ansteht, wird sie in 'c' geliefert,
  53.    * sonst enthält 'c' nach dem Aufruf 0C. Die Funktion kehrt
  54.    * auf jeden Fall sofort ohne Warten auf eine Taste zurück.
  55.    *)
  56.  
  57. PROCEDURE KeyPressed (): BOOLEAN;
  58.   (*
  59.    * Liefert TRUE, wenn eine Taste ansteht.
  60.    *)
  61.  
  62. PROCEDURE FlushKbd;
  63.   (*
  64.    * Löscht Tastaturpuffer
  65.    *)
  66.  
  67. END Console.
  68.